package br.com.comprasPublicas.entity;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.NamedNativeQueries;
import org.hibernate.annotations.NamedNativeQuery;

/**
 *
 * @author helsen_rafael
 * @since 11/01/11
 */
@Entity
@NamedNativeQueries({
        @NamedNativeQuery(name="order_by_id_grupo", query="SELECT * FROM grupoproduto ORDER BY id_grupo",resultClass=GrupoProduto.class),
        @NamedNativeQuery(name="order_by_descricao", query="SELECT * FROM grupoproduto ORDER BY descricao_grupoproduto",resultClass=GrupoProduto.class),
        @NamedNativeQuery(name="select_max_id_grupo", query="SELECT * FROM grupoproduto",resultClass=GrupoProduto.class)
})
public class GrupoProduto implements Serializable {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id_grupo;
    
    @Column(name="descricao_grupoproduto", length=60, nullable=false)
    private String descricao;

    @OneToMany(mappedBy="grupo", fetch = FetchType.LAZY)
    @Cascade(CascadeType.ALL)
    private Collection<Produto> produto;

    @Cascade(CascadeType.ALL)

    //Abaixo os Encapsulamentos dos Campos

    public String getDescricao() {
        return descricao;
    }

   
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

  
    public List<Produto> getProduto() {
        return (List<Produto>) produto;
    }

    
    public void setProduto(List<Produto> produto) {
        this.produto = produto;
    }

    
    public int getId_grupo() {
        return id_grupo;
    }

    
    public void setId_grupo(int id_grupo) {
        this.id_grupo = id_grupo;
    }

}
